package com.rongxun.hbwallet.mvp.contract;

import com.rongxun.base.IBase;
import com.rongxun.hbwallet.model.Response;
import com.rongxun.utils.wallet.ETHWallet;

import io.reactivex.Flowable;

/**
 * Created by dwq on 2018/3/23/023.
 * e-mail:lomapa@163.com
 */

public interface IWalletDetail {
    interface IView extends IBase.IView {
        void modifySuccess();

        void modifyPwdSuccess(ETHWallet wallet);

        void showDerivePrivateKeyDialog(String privateKey);

        void showDeriveKeystore(String keystore);

        void deleteSuccess(boolean isDelete);

        void showQRCode(byte[] bytes);


        void showDeleteWalletResult();
    }

    interface IPresenter extends IBase.IPresenter {
        void modifyWalletName(long walletId, String name);

        void modifyWalletPwd(long walletId, String walletName, String oldPassword, String newPassword);

        void deriveWalletPrivateKey(long walletId, String password);

        void deriveWalletKeystore(long walletId, String password);

        void deleteWallet(long walletId);

        void createQRCode(String address);

        void deleteWallet(String walletId);
    }

    interface IModel extends IBase.IModel {
        Flowable<Response<String>> deleteWallet(String walletId);
    }
}
